package zuo.algo.c19;

/**
 * 00:19-输入和输出都是整数，可以尝试将结果打印出来找规律。
 * 小虎去附近的商店买苹果，奸诈的商贩使用了捆绑交易，只提供6个每袋和8个
 * 每袋的包装包装不可拆分。可是小虎现在只想购买恰好n个苹果，小虎想购买尽
 * 量少的袋数方便携带。如果不能购买恰好n个苹果，小虎将不会购买。输入一个
 * 整数n，表示小虎想购买的个苹果，返回最小使用多少袋子。如果无论如何都不
 * 能正好装下，返回-1。
 */
public class A02 {

    public static int exc1(int n) {
        int r8 = n / 8;
        for (; r8 >= 0; r8--) {
            if ((n - r8 * 8) % 6 == 0) {
                return r8 + (n - r8 * 8) / 6;
            }
        }
        return -1;
    }

    public static int exc2(int n) {
        if (n == 6 || n == 8) {
            return 1;
        }
        if (n < 12) {
            return -1;
        }
        if (n % 2 == 1) {
            return -1;
        }
        if (n % 8 == 0) {
            return n / 8;
        }
        return n / 8 + 1;
    }

    public static void main(String[] args) {
        for (int i = 1; i < 1000; i++) {
            int res1 = exc1(i);
            int res2 = exc2(i);
            System.out.println(i + " - res1 - " + res1 + " res2 - " + res2);
            if (res1 != res2) {
                System.out.println("error");
                break;
            }
        }
    }
}
